package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_cronograma;
import paq_entidades.enti_asignatura;
import paq_entidades.enti_aula;
import paq_entidades.enti_cronograma;
import paq_entidades.enti_modulo;
import paq_entidades.enti_profesor;
import paq_entidades.enti_promocion;
import paq_entidades.enti_unidad_tematica;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_cronograma implements interfaz_cronograma {

    enti_variables v = new enti_variables();
    enti_unidad_tematica uni = new enti_unidad_tematica();
    enti_promocion promo = new enti_promocion();
    enti_modulo mod = new enti_modulo();
    enti_asignatura asig = new enti_asignatura();
    enti_cronograma entidad = new enti_cronograma();
    enti_aula au = new enti_aula();
    enti_profesor prof = new enti_profesor();
    Ejecutarsql ejec = new Ejecutarsql();

    @Override
    public void insertar(String au_codigo, String pr_cedula, String utem_codigo, String asig_codigo, String mod_codigo,
            String prom_codigo, String f_diaa, String hora_inicio, String hfin, String fecha) {
        au.setAu_codigo(au_codigo);
        prof.setPe_cedula(pr_cedula);
        uni.setCodigo(utem_codigo);
        asig.setCodigo(asig_codigo);
        mod.setCodigo(mod_codigo);
        promo.setProm_codigo(prom_codigo);
        entidad.setFd_hora_inicio(hora_inicio);
        entidad.setFd_hora_final(hfin);
        entidad.setFd_fecha(fecha);
        entidad.setFd_dia(f_diaa);
        if (asig.getCodigo() == null) {
            String sql = "insert into fecha_dia (fd_codigo,au_codigo,pr_cedula,mod_codigo,prom_codigo,fd_dia,fd_hora_i,fd_hora_f,fd_fecha) values(concat('fd',fd.NextVal),'" + au.getAu_codigo() + "','" + prof.getPe_cedula() + "','" + mod.getCodigo() + "','" + promo.getProm_codigo() + "','" + entidad.getFd_dia() + "','" + entidad.getFd_hora_inicio() + "','" + entidad.getFd_hora_final() + "',to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd'))";

            // String sql = "insert into fecha_dia (fd_codigo,au_codigo,pr_cedula,mod_codigo,prom_codigo,fd_dia,fd_hora_i,fd_hora_f,fd_fecha) values(concat('fd',fd.NextVal),'" + au.getAu_codigo() + "','" + prof.getPe_cedula() + "','" + mod.getCodigo() + "','" + promo.getProm_codigo() + "','" + entidad.getFd_dia() + "',to_date('" + entidad.getFd_hora_inicio() + "','yyyy-dd-mm HH24:MI'),to_date('" + entidad.getFd_hora_final() + "','yyyy-dd-mm HH24:MI'),to_date('" + entidad.getFd_fecha() + "','yyyy-dd-mm'))";
            ejec.ejecutar2(sql);
        } else if (uni.getCodigo() == null) {
            String sql = "insert into fecha_dia (fd_codigo,au_codigo,pr_cedula,asig_codigo,mod_codigo,prom_codigo,fd_dia,fd_hora_i,fd_hora_f,fd_fecha) values(concat('fd',fd.NextVal),'" + au.getAu_codigo() + "','" + prof.getPe_cedula() + "','" + asig.getCodigo() + "','" + mod.getCodigo() + "','" + promo.getProm_codigo() + "','" + entidad.getFd_dia() + "','" + entidad.getFd_hora_inicio() + "','" + entidad.getFd_hora_final() + "',to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd'))";
            ejec.ejecutar2(sql);
        } else {
            String sql = "insert into fecha_dia (fd_codigo,au_codigo,pr_cedula,utem_codigo,asig_codigo,mod_codigo,prom_codigo,fd_dia,fd_hora_i,fd_hora_f,fd_fecha) values(concat('fd',fd.NextVal),'" + au.getAu_codigo() + "','" + prof.getPe_cedula() + "','" + uni.getCodigo() + "','" + asig.getCodigo() + "','" + mod.getCodigo() + "','" + promo.getProm_codigo() + "','" + entidad.getFd_dia() + "','" + entidad.getFd_hora_inicio() + "','" + entidad.getFd_hora_final() + "',to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd'))";
            ejec.ejecutar2(sql);

        }
        v.msm = ejec.getMen();
    }

    @Override
    public void eliminar(String al_codigo) {
        entidad.setCodigo(al_codigo);
        String sql = "delete from  fecha_dia where fd_codigo='" + entidad.getCodigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void actualizar(String al_codigo, String au_codigo, String pr_cedula, String utem_codigo, String asig_codigo,
            String mod_codigo, String prom_codigo, String f_diaa, String hora_inicio, String hfin, String fecha) {
        entidad.setCodigo(al_codigo);
        au.setAu_codigo(au_codigo);
        prof.setPe_cedula(pr_cedula);
        uni.setCodigo(utem_codigo);
        asig.setCodigo(asig_codigo);
        mod.setCodigo(mod_codigo);
        promo.setProm_codigo(prom_codigo);
        entidad.setFd_hora_inicio(hora_inicio);
        entidad.setFd_hora_final(hfin);
        entidad.setFd_fecha(fecha);
        entidad.setFd_dia(f_diaa);
        if (asig.getCodigo() == null) {
        String sql = "update fecha_dia set au_codigo='" + au.getAu_codigo() + "',pr_cedula='" + prof.getPe_cedula() + "',mod_codigo='" + mod.getCodigo() + "',prom_codigo='" + promo.getProm_codigo() + "',fd_dia='" + entidad.getFd_dia() + "',fd_hora_i='" + entidad.getFd_hora_inicio() + "',fd_hora_f='" + entidad.getFd_hora_final() + "',fd_fecha=to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd') where fd_codigo='" + entidad.getCodigo() + "'  ";
        ejec.ejecutar2(sql);
        }
        else if (uni.getCodigo() == null) {
           String sql = "update fecha_dia set au_codigo='" + au.getAu_codigo() + "',pr_cedula='" + prof.getPe_cedula() + "',asig_codigo='" + asig.getCodigo() + "',mod_codigo='" + mod.getCodigo() + "',prom_codigo='" + promo.getProm_codigo() + "',fd_dia='" + entidad.getFd_dia() + "',fd_hora_i='" + entidad.getFd_hora_inicio() + "',fd_hora_f='" + entidad.getFd_hora_final() + "',fd_fecha=to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd') where fd_codigo='" + entidad.getCodigo() + "'  ";
        ejec.ejecutar2(sql); 
        }
        else {
                String sql = "update fecha_dia set au_codigo='" + au.getAu_codigo() + "',asig_codigo='"+ asig.getCodigo() +"',utem_codigo='"+ uni.getCodigo() +"',pr_cedula='" + prof.getPe_cedula() + "',asig_codigo='" + asig.getCodigo() + "',mod_codigo='" + mod.getCodigo() + "',prom_codigo='" + promo.getProm_codigo() + "',fd_dia='" + entidad.getFd_dia() + "',fd_hora_i='" + entidad.getFd_hora_inicio() + "',fd_hora_f='" + entidad.getFd_hora_final() + "',fd_fecha=to_date('" + entidad.getFd_fecha() + "','yyyy-mm-dd') where fd_codigo='" + entidad.getCodigo() + "'  ";
        ejec.ejecutar2(sql);
        }
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl getLista(String cod) {
        try {
            // v.crs = (CachedRowSetImpl) ejec.rellena2("select fdi.FD_CODIGO,fdi.AU_CODIGO,fdi.PR_CEDULA,fdi.UTEM_CODIGO,fdi.ASIG_CODIGO,fdi.MOD_CODIGO,fdi.PROM_CODIGO,fdi.FD_DIA,to_char(fdi.FD_HORA_INICIO, 'HH24:mi:ss'),to_char(fdi.FD_HORA_FINAL,'HH24:mi:ss'),fdi.FD_FECHA from promocion prom,FECHA_DIA fdi where prom.PROM_CODIGO=fdi.PROM_CODIGO and prom.PROM_CODIGO='"+ cod +"' order by fd_codigo desc");
            v.crs = (CachedRowSetImpl) ejec.rellena2("select fdi.FD_CODIGO,fdi.AU_CODIGO,fdi.PR_CEDULA,fdi.UTEM_CODIGO,fdi.ASIG_CODIGO,fdi.MOD_CODIGO,fdi.PROM_CODIGO,fdi.FD_DIA,fdi.FD_HORA_I,fdi.FD_HORA_F,fdi.FD_FECHA from promocion prom,FECHA_DIA fdi where prom.PROM_CODIGO=fdi.PROM_CODIGO and prom.PROM_CODIGO='" + cod + "' order by fd_codigo desc");
//               v.crs = (CachedRowSetImpl) ejec.rellena2("select * from promocion prom,FECHA_DIA fdi where prom.PROM_CODIGO=fdi.PROM_CODIGO and prom.PROM_CODIGO='"+ cod +"' order by fd_codigo desc");

        } catch (Exception ex) {
            Logger.getLogger(neg_cronograma.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public CachedRowSetImpl getcomprobaraula(String cod) {
        try {
            v.crs2 = (CachedRowSetImpl) ejec.rellena2("select fd.AU_CODIGO,fd.FD_FECHA from FECHA_DIA fd where fd.AU_CODIGO='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_cronograma.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs2;
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl getcomprobarprofesor(String cod) {
        try {
            v.crs3 = (CachedRowSetImpl) ejec.rellena2("select fd.FD_FECHA from PROFESOR pro, FECHA_DIA fd where pro.PR_CEDULA=fd.PR_CEDULA and pro.PR_CEDULA='" + cod + "'");
        } catch (Exception ex) {
            Logger.getLogger(neg_cronograma.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs3;
    }

    @Override
    public CachedRowSetImpl getdevolverfechaprofesor(String cedula,String fecha) {
        try {
            v.crs1 = (CachedRowSetImpl) ejec.rellena2("select to_char(fd.FD_FECHA,'yyyy-MM-dd'),pr.PR_CEDULA from FECHA_DIA fd, PROFESOR pr where fd.PR_CEDULA=pr.PR_CEDULA and pr.PR_CEDULA='" + cedula + "' and to_char(fd.FD_FECHA,'yyyy-MM-dd')=to_char('"+ fecha +"')");
        } catch (Exception ex) {
            Logger.getLogger(neg_cronograma.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs1;
    }
}
